package br.com.wepa.webapps.orca.logica.modelo;

// Generated 12/01/2007 02:01:35 by Hibernate Tools 3.2.0.beta8

import java.util.HashSet;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Type;

/**
 * Usuario generated by hbm2java
 */
@Entity
@Table(name = "usuario", catalog = "Orca", uniqueConstraints = {})
public class Usuario implements java.io.Serializable {

	// Fields    
	/**
	 * 
	 */
	private static final long serialVersionUID = 4091572863532827103L;

	private int idUsuario;
	
	private String login;

	private Credencial credencial;

	private Construtora construtora;

	private String nome;

	private String senha;

	private Set<Orcamento> orcamentos = new HashSet<Orcamento>(0);

	// Constructors

	/** default constructor */
	public Usuario() {
	}

	/** minimal constructor */
	public Usuario(int idUsuario,String login, Credencial credencial, String nome,
			String senha) {
		this.idUsuario = idUsuario;
		this.login = login;
		this.credencial = credencial;
		this.nome = nome;
		this.senha = senha;
	}

	/** full constructor */
	public Usuario(int idUsuario,String login, Credencial credencial,
			Construtora construtora, String nome, String senha,
			Set<Orcamento> orcamentos) {
		this.idUsuario = idUsuario;
		this.login = login;
		this.credencial = credencial;
		this.construtora = construtora;
		this.nome = nome;
		this.senha = senha;
		this.orcamentos = orcamentos;
	}

	// Property accessors
	
	@Id
	@Column(name = "idUsuario", unique = true, nullable = false, insertable = true, updatable = true)
	public int getIdUsuario() {
		return this.idUsuario;
	}

	public void setIdUsuario(int idUsuario) {
		this.idUsuario= idUsuario;
	}
	
	
	@Column(name = "login", unique = true, nullable = false, insertable = true, updatable = true, length = 20)
	public String getLogin() {
		return this.login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	@ManyToOne(cascade = {}, fetch = FetchType.LAZY)
	@JoinColumn(name = "Credencial_idCredencial", unique = false, nullable = false, insertable = true, updatable = true)
	public Credencial getCredencial() {
		return this.credencial;
	}

	public void setCredencial(Credencial credencial) {
		this.credencial = credencial;
	}

	@ManyToOne(cascade = {}, fetch = FetchType.LAZY)
	@JoinColumn(name = "Construtora_idConstrutora", unique = false, nullable = true, insertable = true, updatable = true)
	public Construtora getConstrutora() {
		return this.construtora;
	}

	public void setConstrutora(Construtora construtora) {
		this.construtora = construtora;
	}

	@Column(name = "nome", unique = false, nullable = false, insertable = true, updatable = true, length = 100)
	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	@Type(type = "br.com.wepa.webapps.orca.logica.persistencia.hibernate.type.Password")
	@Column(name = "senha", unique = false, nullable = false, insertable = true, updatable = true, length = 20)
	public String getSenha() {
		return this.senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	@OneToMany(cascade = {}, fetch = FetchType.LAZY, mappedBy = "usuario")
	public Set<Orcamento> getOrcamentos() {
		return this.orcamentos;
	}

	public void setOrcamentos(Set<Orcamento> orcamentos) {
		this.orcamentos = orcamentos;
	}

}
